package com.sale.goods.service;

import com.sale.common.mybatis.core.page.PageQuery;
import com.sale.common.mybatis.core.page.TableDataInfo;
import com.sale.goods.domain.GoodsInvoicePin;
import com.sale.goods.domain.dto.GoodsInvoicePinDto;
import com.sale.goods.domain.dto.single.GoodsInvoicePinSingle;
import com.sale.goods.domain.vo.GoodsInvoicePinVo;

/**
 * @Description 销项税发票
 * @Date 23-07-19
 * @Author hl
 **/
public interface IGoodsInvoicePinService {

    /**
     * 分页查询销项税发票
     *
     * @param goodSInvoicePinVo,pageQuery
     * @return 销项税发票集合
     */
    TableDataInfo<GoodsInvoicePinDto> selectInvoicePinList(GoodsInvoicePinVo goodSInvoicePinVo, PageQuery pageQuery);

    /**
     * 新增销项税发票
     *
     * @param goodSInvoicePinVo
     * @return int
     */
    int insertInvoicePin(GoodsInvoicePinVo goodSInvoicePinVo) throws Exception;

    /**
     * 查询销项税发票
     *
     * @param invoicePinId
     * @return  GoodSInvoicePinDto
     */
    GoodsInvoicePinSingle selectInvoicePinById(long invoicePinId);

    /**
     * 删除销项税发票
     *
     * @param invoicePinId
     * @return  int
     */
    int deleteInvoicePinById(Long invoicePinId);

    /**
     * 修改销项税发票
     *
     * @param goodSInvoicePinVo
     * @return  int
     */
    int updateInvoicePinEdit(GoodsInvoicePinVo goodSInvoicePinVo);

    /**
     * 提交审核
     *
     * @param invoicePinId
     * @return  int
     */
    int submitReview(Long invoicePinId);

    /**
     * 撤销审核
     *
     * @param invoicePinId
     * @return  int
     */
    int deleteReview(Long invoicePinId);

    /**
     * 审核单据
     *
     * @param goodSInvoicePinVo
     * @return  int
     */
    int goodSExamineReview(GoodsInvoicePinVo goodSInvoicePinVo) throws Exception;

    /**
     * 认证
     *
     * @param invoicePinId
     * @return  int
     */
    int goodsThe(Long invoicePinId);
}
